package com.hzz.dto.river;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.hzz.framework.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.Date;

@Data
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
@ApiModel("水域岸线 DTO")
public class WaterShorelineDto extends BaseDto {
    /** id */
    Long id;
    
    /** 岸线编码 */
    @NotNull(message = "shorelineCode不能为空")
    @Size(max = 50, message = "shorelineCode最大50字符")
    String shorelineCode;
    
    /** 所在河道 */
    @NotNull(message = "riverCourseCode不能为空")
    @Size(max = 50, message = "riverCourseCode最大50字符")
    String riverCourseCode;
    
    String riverCourseName;
    
    /** 河流岸别 */
    @NotNull(message = "riverBank不能为空")
    @Size(max = 20, message = "riverBank最大20字符")
    String riverBank;
    
    /** 岸线长度 */
    @NotNull(message = "shorelineLength不能为空")
    Double shorelineLength;
    
    /** 利用规划类别 */
    @Size(max = 20, message = "planningType最大20字符")
    String planningType;
    
    /** 起点位置名称 */
    @Size(max = 50, message = "startAddr最大50字符")
    String startAddr;
    
    /** 终点位置名称 */
    @Size(max = 50, message = "endAddr最大50字符")
    String endAddr;
    
    /** 起点经度 */
    @NotNull(message = "startLon不能为空")
    Double startLon;
    
    /** 起点纬度 */
    @NotNull(message = "startLat不能为空")
    Double startLat;
    
    /** 终点经度 */
    @NotNull(message = "endLon不能为空")
    Double endLon;
    
    /** 终点纬度 */
    @NotNull(message = "endLat不能为空")
    Double endLat;
    
    /** 行政区划 */
    @Size(max = 100, message = "regionId最大100字符")
    String regionId;
    
    /** 行政区划名称 */
    @Size(max = 100, message = "regionName最大100字符")
    String regionName;
    
    /** 归口管理单位 */
    @Size(max = 50, message = "gkManagementDept最大50字符")
    String gkManagementDept;
    
    /** 目前状态 包括已完成、未完成 */
    @Size(max = 20, message = "currentState最大20字符")
    String currentState;
    
    /** 备注 */
    @Size(max = 255, message = "memo最大255字符")
    String memo;
    
    /** 删除标识(0未删除1已删除) */
    Integer delFlag;
    
    /** 建立者id */
    Long createId;
    
    /** 更新时间 */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    Date dateUpdated;
    
    /** 创建时间 */
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
    Date dateCreated;
    
}
